Method and system for detection of presence in predefined location and delivery thereto

ABSTRACT

Methods and systems of detection of presence in and delivery to location are provided. A method detects a presence of a mobile device within a perimeter of a geographic region. The method searches a database to determine whether the first mobile device is associated with any existing account. Responsive to determining that the mobile device is associated with a first account, the method searches the database to determine whether there is any pending task associated with the first account. Responsive to determining that there is a pending task associated with the first account, the method transmits a first message indicating the detection of presence of the mobile device associated with the first account. The method determines that the mobile device is at least approximately at a first location of a plurality of predefined locations within the perimeter. The method transmits information associated with the first location to the computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/695,963, filed Sep. 5, 2017, which is a continuation of U.S.application Ser. No. 15/236,930, filed Aug. 15, 2016 (now U.S. Pat. No.9,788,157), which claims the benefit of U.S. Provisional PatentApplication Ser. No. 62/206,131, filed Aug. 17, 2015, which are allincorporated herein by reference.

TECHNICAL FIELD

The present disclosure generally relates to methods and systems fordetection of presence of a mobile device in a predefined location anddelivery of items to the predefined location.

BACKGROUND

In the context of delivery of items to consumers, home delivery of awide variety of grocery items and online-ordered items is common. Acustomer may order items online via a website maintained by a merchant.Then, an employee of the merchant may take the items and deliver to thecustomer. However, home delivery does not work well for items thatcannot be left out due to temperature conditions. Further, waiting athome for an order to arrive can counter the benefit of saving the timefor visiting the store.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments of the present disclosureare described with reference to the following figures, wherein likereference numerals refer to like parts throughout the various figuresunless otherwise specified.

FIG. 1 is a diagram depicting an example computing environment in whichexample embodiments of the present disclosure may be implemented.

FIG. 2 is a diagram depicting an example scenario in which exampleembodiments of the present disclosure may be implemented.

FIG. 3 is a block diagram depicting an embodiment of a computingapparatus in accordance with the present disclosure.

FIG. 4 is a flowchart diagram of an example process for detection ofpresence of one or more mobile devices in a geographic region inaccordance with the present disclosure.

FIG. 5 is a flowchart diagram of another example process for detectionof presence of one or more mobile devices in a geographic region inaccordance with the present disclosure.

DETAILED DESCRIPTION

In the following description, reference is made to the accompanyingdrawings that form a part thereof, and in which is shown by way ofillustrating specific exemplary embodiments in which the disclosure maybe practiced. These embodiments are described in sufficient detail toenable those skilled in the art to practice the concepts disclosedherein, and it is to be understood that modifications to the variousdisclosed embodiments may be made, and other embodiments may beutilized, without departing from the scope of the present disclosure.The following detailed description is, therefore, not to be taken in alimiting sense.

The articles “a” and “an” are used herein to refer to one or to morethan one (i.e. to at least one) of the grammatical object of thearticle. By way of example, “a user” means one user or more than oneusers. Reference throughout this specification to “one embodiment,” “anembodiment,” “one example,” or “an example” means that a particularfeature, structure, or characteristic described in connection with theembodiment or example is included in at least one embodiment of thepresent disclosure. Thus, appearances of the phrases “in oneembodiment,” “in an embodiment,” “one example,” or “an example” invarious places throughout this specification are not necessarily allreferring to the same embodiment or example. Furthermore, the particularfeatures, structures, databases, or characteristics may be combined inany suitable combinations and/or sub-combinations in one or moreembodiments or examples. In addition, it should be appreciated that thefigures provided herewith are for explanation purposes to personsordinarily skilled in the art and that the drawings are not necessarilydrawn to scale.

Embodiments in accordance with the present disclosure may be embodied asan apparatus, method, or computer program product. Accordingly, thepresent disclosure may take the form of an entirely hardware-comprisedembodiment, an entirely software-comprised embodiment (includingfirmware, resident software, micro-code or the like), or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module,” or “system.” Furthermore,embodiments of the present disclosure may take the form of a computerprogram product embodied in any tangible medium of expression havingcomputer-usable program code embodied in the medium.

Any combination of one or more computer-usable or computer-readablemedia may be utilized. For example, a computer-readable medium mayinclude one or more of a portable computer diskette, a hard disk, arandom access memory (RAM) device, a read-only memory (ROM) device, anerasable programmable read-only memory (EPROM or Flash memory) device, aportable compact disc read-only memory (CDROM), an optical storagedevice, and a magnetic storage device. Accordingly, the terms“computer-readable medium” and “computer-readable media” herein refer tonon-transitory and tangible medium and media, respectively. Computerprogram code for carrying out operations of the present disclosure maybe written in any combination of one or more programming languages. Suchcode may be compiled from source code to computer-readable assemblylanguage or machine code suitable for the device or computer on whichthe code will be executed.

Embodiments may also be implemented in cloud computing environments. Inthis description and the following claims, “cloud computing” may bedefined as a model for enabling ubiquitous, convenient, on-demandnetwork access to a shared pool of configurable computing resources(e.g., networks, servers, storage, applications, and services) that canbe rapidly provisioned via virtualization and released with minimalmanagement effort or merchant interaction and then scaled accordingly. Acloud model can be composed of various characteristics (e.g., on-demandself-service, broad network access, resource pooling, rapid elasticity,and measured service), service models (e.g., Software as a Service(“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as aService (“IaaS”)), and deployment models (e.g., private cloud, communitycloud, public cloud, and hybrid cloud).

The flow diagrams and block diagrams in the attached figures illustratethe architecture, functionality, and operation of possibleimplementations of systems, methods, and computer program productsaccording to various embodiments of the present disclosure. In thisregard, each block in the flow diagrams or block diagrams may representa module, segment, or portion of code, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). It will also be noted that each block of the block diagramsand/or flow diagrams, and combinations of blocks in the block diagramsand/or flow diagrams, may be implemented by special purposehardware-based systems that perform the specified functions or acts, orcombinations of special purpose hardware and computer instructions.These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flow diagram and/orblock diagram block or blocks.

FIG. 1 is a diagram depicting an example computing environment 100 inwhich example embodiments of the present disclosure may be implemented.In example computing environment 100, an operator 102 operates one ormore servers, shown and referred to as a server 130 for simplicity, andone or more databases, shown and referred to as a database 150 hereinfor simplicity. Operator 102 in example computing environment 100 may bea business entity such as a merchant, a service provider or the like.For instance, operator 102 may be a merchant that operates an onlinewebsite as well as one or more physical retail stores to sell one ormore services and products, and in this case a customer may place anonline order of one or more items at the website of operator 102 forpickup at one of the physical stores of operator 102. Server 130 may becommunicatively coupled to access data, e.g., read from and write to,with respect to database 150. Alternatively, server 130 may includedatabase 150 therein. Server 130 and database 150 may be communicativelycoupled to a network 120 to receive information and data from andtransmit information and data to network 120. For instance, server 130may be configured to receive information from one or more computingdevices, shown and referred to as a computing device 108 for simplicity,operated by one or more online users, shown and referred to as a user105 herein for simplicity. In example computing environment 100,computing device 108 may represent a mobile device such as a smartphone,a tablet computer, a laptop computer, a notebook computer, a phablet, adesktop computer or a server that is communicatively coupled to network102 to allow user 105 to communicate, access information and placeorders via network 102. User 105 may create, via computing device 108and network 120, an account with operator 102 by creating a user profileby storing personal information and credentials of user 105 in database150. User 105 may also establish, place, request, create or otherwisegenerate one or more tasks, transactions or records with operator 102 bystoring, via computing device 108 and network 120, such task(s),transaction(s) and/or record(s) in database 150. In someimplementations, user 105 may use mobile device 110 in lieu of computingdevice 108 to perform the operations described above with respect tocomputing device 108.

Example computing environment 100 may also include a wireless detectionsystem that is communicatively coupled to the server 130 via network120. Wireless detection system may include a number of wirelesscommunication devices 180(1)-180(M) each of which configured to functionas a wireless sensor. The number M is a positive integer greater thanone. Each of wireless communication devices 180(1)-180(M) may becommunicatively coupled to network 120 in a wired or wireless manner.Wireless communication devices 180(1)-180(M) may be configured tocommunicate with one another, e.g., to transmit or receive data.Wireless communication devices 180(1)-180(M) may be disposed in andaround a geographic region 160, which may include a number of predefinedlocations 165(1)-165(N) defined therein, where N is a positive integergreater than one. Wireless communication devices 180(1)-180(M) may beconfigured to form a geo-fence around geographic region 160 by forming avirtual perimeter around geographic region 160. Accordingly, one or moreof wireless communication devices 180(1)-180(M) may wirelessly detectthe presence of one or more mobile devices, e.g., a mobile device 110,within a perimeter of geographic region 160. One or more wirelesscommunication devices 180(1)-180(M) may be configured to function as aradio beacon, a sonic beacon and/or a visual beacon. Any presentlyavailable technology and future-developed technology suitable for thepurposes of geo-fencing and presence detection may be implemented inwireless communication devices 180(1)-180(M). The perimeter ofgeographic region 160 may be dynamically defined, e.g., by server 130 orthe wireless detection system, on a periodic basis or in response toreceiving an operator input. As a result, a size of geographic region160 within the perimeter at a first time is different from a size ofgeographic region 160 within the perimeter at a second time.

In some implementations, mobile device 110 may have a mobile app, e.g.,a computer program designed to run on mobile platforms such as mobiledevice 110, installed therein with location service turned on. Themobile app, in collaboration with software and/or hardware of mobiledevice 110, may be configured to determine a location of mobile device110 in real-time or on a periodic basis. For instance, mobile device 110may be equipped with a global positioning system (GPS) device configuredto determine a location of mobile device 110 in real-time fashion orupon request by a user or the mobile app. Other technologies, such asradio frequency identification (RFID) may be utilized to detect thepresence of mobile devices, e.g., mobile device 110, by wirelesscommunication devices 180(1)-180(M). That is, the wireless detectionsystem may be capable of detecting the presence of mobile devices usingGPS information received from the detected mobile device(s), RFIDsignal(s) received from such mobile device(s), or a combination thereof.

The mobile app may also be configured to establish communication, e.g.,wirelessly via mobile device 110, with one or more of wirelesscommunication devices 180(1)-180(M) when mobile device 110 is nearand/or within the perimeter of geographic region 160. In someimplementations, the mobile app may cause mobile device 110 to providelocation of mobile device 110, e.g., GPS coordinates, to one or morewireless communication devices 180(1)-180(M). Alternatively oradditionally, by triangulation multiple ones of wireless communicationdevices 180(1)-180(M) may determine the location of mobile device 110,e.g., based on wireless signals transmitted from mobile device 110.Alternatively or additionally, a user of mobile device 110 may send anotification to operator 102 via the wireless detection system toindicate that the user (and mobile device 110) is within the perimeterof geographic region 160. For example, upon visually seeing one or moreof wireless communication devices 180(1)-180(M) functioning as visualbeacon(s) or upon being prompted by the mobile app via a display ofmobile device 110, the user may operate the mobile app to cause mobiledevice 110 to transmit a signal, received by one or more of wirelesscommunication devices 180(1)-180(M), to indicate that the user (andmobile device 110) is within the perimeter of geographic region 160.

Upon detecting the presence of mobile device 110 within geographicregion 160, wireless detection system may transmit information to server130 to indicate the detection of the presence of mobile device 110.Server 130 may search database 150 to determine whether mobile device110 is associated with any existing account. When it is determined thatmobile device 110 (and/or the user of mobile device 110) is associatedwith an existing account, herein referred to as “first account”, server130 may further search database 150 to determine whether there is anypending task associated with the first account. A pending task may be anaction that needs to be taken by the operator 102 with respect to mobiledevice 110 or the user of mobile device 110. For example, a pending taskmay involve the operator 110 transmitting certain data or information tomobile device 110 when it is determined that mobile device 110 is withinthe geographic region 160 or within one of the predefined locations165(1)-165(N). As another example, a pending task may involve theoperator 110 transmitting a particular signal to mobile device 110 totrigger certain action(s) on mobile device 110, e.g., performed by amobile app on mobile device 110, when it is determined that mobiledevice 110 is within the geographic region 160 or within one of thepredefined locations 165(1)-165(N). As yet another example, a pendingtask may involve the operator 110 delivering one or more items to thespot where mobile device 110 is located when it is determined thatmobile device 110 is within the geographic region 160 or within one ofthe predefined locations 165(1)-165(N).

Responsive to determining that there is a pending task associated withthe first account, server 130 may also determine that mobile device 110is approximately at one of the predefined locations 165(1)-165(N). Forinstance, upon determining that there is a pending task associated withthe first account, server 130 may transmit a signal to mobile device110, via network 120 and wireless detection system or a mobilecommunication system (not shown), to prompt the mobile device 110 (orthe user of mobile device 110) to provide an updated location of mobiledevice 110. Specifically, mobile device 110 may provide updated locationinformation, e.g., updated GPS coordinates, to server 130 or,alternatively or additionally, the user of mobile device 110 may beprompted to indicate which one of predefined locations 165(1)-165(N) atwhich mobile device 110 is at least approximately located, it notwithin, at that time. Accordingly, server 130 may receive a message frommobile device 110 to indicate the current location of mobile device 110.Alternatively or additionally, server 130 may transmit a signal towireless detection system to cause one or more wireless communicationdevices 180(1)-180(M) to detect and determine an updated location ofmobile device 110. The purpose for doing so is to attempt to pinpointthe current location of mobile device 110 as to which one of thepredefined locations 165(1)-165(N) at which the mobile device 110 islocated at the current time.

In some implementations, one or more wireless communication devices180(1)-180(M) of the wireless detection system may track a movement ofmobile device 110 within the perimeter of geographic region 160. One ormore wireless communication devices 180(1)-180(M) of the wirelessdetection system may also determine non-movement of mobile device 110 atleast approximately at one of the predefined locations 165(1)-165(N) forat least a threshold period of time, e.g., 30 seconds, 1 minute or 3minutes. One or more wireless communication devices 180(1)-180(M) of thewireless detection system may further transmit a result of the trackingand/or determining to server 130.

In some implementations, server 130 may trigger a timer, e.g., at server130, mobile device 110 or another computing device, to count down for apredetermined period of time, e.g., 5 minutes or another amount of timethat is more or less than 5 minutes, upon determining that mobile device110 is at least approximately at one of the predefined locations165(1)-165(N) within the perimeter of geographic region 160. In someimplementations, in triggering the timer, server 130 may transmit asignal to mobile device 110 to trigger a timer on mobile device 110.

In some implementations, one or more wireless communication devices180(1)-180(M) of the wireless detection system may detect a presence ofanother mobile device, e.g., mobile device 140, within the perimeter ofgeographic region 160, and the wireless detection system may send amessage to server 130 to indicate the detection of mobile device 140.Subsequently, server 130 may search database 150 to determine whethermobile device 140 is associated with any existing account. Responsive todetermining that there is an existing account, herein referred to as“second account”, server 130 may further search database 150 todetermine whether there is any pending task associated with the secondaccount.

FIG. 2 is a diagram depicting an example scenario 200 in which exampleembodiments of the present disclosure may be implemented. Examplescenario 200 is one of many possible implementation scenarios based onexample computing environment 100, and is provided solely forillustrative purpose so that those skilled in the art may betterappreciate benefits and advantages provided by the present disclosure.Therefore, the scope of the present disclosure is not limited to examplescenario 200.

In example scenario 200, a merchant 202 operates one or more servers,shown and referred to as a server 230 for simplicity, and one or moredatabases, shown and referred to as a database 250 herein forsimplicity. In some embodiments, database 250 may be an integral part ofserver 230. Database 250 may record, store or otherwise contain thereindata associated with a set of products and/or services that areavailable for sale at an e-commerce website hosted on web server forpickup at one or more physical stores associated with merchant 202,including physical store 270. Database 250 may also record, store orotherwise contain therein data associated with a set of products and/orservices that are available for sale at physical store 270.

One or more physical stores, e.g., store 270, may be operated by, ownedby, affiliated with or otherwise related to merchant 202. Each physicalstore is located near to or within a respective geographic region. Forinstance, as shown in FIG. 2, store 270 is located within or nearpremises 260, which includes a number of predefined locations265(1)-265(N). Predefined locations 265(1)-265(N) may be, for example,parking spots. Merchant 202 may offer a plethora of items, ormerchandise, for sale, and the items for sale may be purchased onlinefor shipment to consumers or pickup at a local store, e.g., store 270.Database 250 may store information associated with the items for sale aswell as user accounts of consumers.

Server 230 may be communicatively coupled to access data, e.g., readfrom and write to, with respect to database 250. Alternatively, server230 may include database 250 therein. Server 230 and database 250 may becommunicatively coupled to a network 220 to receive information and datafrom and transmit information and data to network 220. For instance,server 230 may be configured to receive information from one or morecomputing devices, shown and referred to as a mobile device 208 forsimplicity, operated by one or more online users, shown and referred toas a user 205 herein for simplicity. User 205 may create, via mobiledevice 210 and network 220, an account with merchant 202 by creating auser profile by storing personal information and credentials of user 205in database 250. User 205 may also establish, place, request, create orotherwise generate one or more tasks, transactions or records withmerchant 202 by storing, via mobile device 210 and network 220, suchtask(s), transaction(s) and/or record(s) in database 250. For instance,user 205, having an account created with merchant 202, may place anorder of one or more items for pickup at store 270. User 205 mayschedule an appointment for pickup of the order at store 270, whether asa particular point in time, e.g., 4:30 PM on March 18, or a range oftime, e.g., 4:30-5:30 PM on March 18. Accordingly, server 230 may createand store in database 250 a task for staff at store 270 to prepare anddeliver the one or more items of the order for the scheduled pickupappointment.

Example scenario 200 may also include a wireless detection system thatis communicatively coupled to the server 230 via network 220. Wirelessdetection system may include a number of wireless communication devices280(1)-280(M) each of which configured to function as a wireless sensor.Each of wireless communication devices 280(1)-280(M) may becommunicatively coupled to network 220 in a wired or wireless manner.Wireless communication devices 280(1)-280(M) may be configured tocommunicate with one another, e.g., to transmit or receive data.Wireless communication devices 280(1)-280(M) may be disposed in andaround premises 260. Wireless communication devices 280(1)-280(M) may beconfigured to form a geo-fence around premises 260 by forming a virtualperimeter around premises 260. Accordingly, one or more of wirelesscommunication devices 280(1)-280(M) may wirelessly detect the presenceof one or more mobile devices, e.g., mobile device 210, within aperimeter of premises 260. One or more wireless communication devices280(1)-280(M) may be configured to function as a radio beacon, a sonicbeacon and/or a visual beacon. Any presently available technology andfuture-developed technology suitable for the purposes of geo-fencing andpresence detection may be implemented in wireless communication devices280(1)-280(M). The perimeter of premises 260 may be dynamically defined,e.g., by server 230 or the wireless detection system, on a periodicbasis or in response to receiving an operator input. As a result, a sizeof premises 260 within the perimeter at a first time is different from asize of premises 260 within the perimeter at a second time.

In some implementations, mobile device 210 may have a mobile app, e.g.,a computer program designed to run on mobile platforms such as mobiledevice 110, installed therein with location service turned on. Themobile app, in collaboration with software and/or hardware of mobiledevice 210, may be configured to determine a location of mobile device210 in real-time or on a periodic basis. For instance, mobile device 210may be equipped with a GPS device configured to determine a location ofmobile device 2 in real-time fashion or upon request by a user or themobile app. Other technologies, such as RFID may be utilized to detectthe presence of mobile devices, e.g., mobile device 210, by wirelesscommunication devices 280(1)-280(M). That is, the wireless detectionsystem may be capable of detecting the presence of mobile devices usingGPS information received from the detected mobile device(s), RFIDsignal(s) received from such mobile device(s), or a combination thereof.

The mobile app may also be configured to establish communication, e.g.,wirelessly via mobile device 210, with one or more of wirelesscommunication devices 280(1)-280(M) when mobile device 210 is nearand/or within the perimeter of premises 260. In some implementations,the mobile app may cause mobile device 210 to provide location of mobiledevice 210, e.g., GPS coordinates, to one or more wireless communicationdevices 280(1)-280(M). Alternatively or additionally, by triangulationmultiple ones of wireless communication devices 280(1)-280(M) maydetermine the location of mobile device 210, e.g., based on wirelesssignals transmitted from mobile device 210. Alternatively oradditionally, a user of mobile device 210 may send a notification tomerchant 202 via wireless detection system to indicate that the user(and mobile device 210) is within the perimeter of premises 260. Forexample, upon visually seeing one or more of wireless communicationdevices 280(1)-280(M) functioning as visual beacon(s) or upon beingprompted by the mobile app via a display of mobile device 210, the usermay operate the mobile app to cause mobile device 210 to transmit asignal, received by one or more of wireless communication devices280(1)-280(M), to indicate that the user (and mobile device 210) iswithin the perimeter of premises 260.

Upon detecting the presence of mobile device 210 within premises 260,wireless detection system may transmit information to server 230 toindicate the detection of the presence of mobile device 210. Server 230may search database 250 to determine whether mobile device 210 isassociated with any existing account. When it is determined that mobiledevice 210 (and/or the user of mobile device 210) is associated with anexisting account, herein referred to as “first account”, server 230 mayfurther search database 250 to determine whether there is any pendingtask associated with the first account. Responsive to determining thatthere is a pending task associated with the first account, server 230may transmit a first message to one or more computing devices associatedwith store 270 to indicate the detecting of the presence of the mobiledevice 210 which is associated with the first account. This way, staffat store 270 may be put on notice that user 205 is here to pick up theone or more items of the online order. Server 230 may also determinethat mobile device 210 is approximately at one of the predefinedlocations 265(1)-265(N), and transmit information associated with thedetermined location as one of the predefined locations 265(1)-265(N) tothe one or more computing devices associated with store 270. Forinstance, upon determining that there is a pending task associated withthe first account, server 230 may transmit a signal to mobile device210, via network 220 and the wireless detection system or a mobilecommunication system (not shown), to prompt the mobile device 210 (orthe user of mobile device 210) to provide an updated location of mobiledevice 210. Specifically, mobile device 210 may provide updated locationinformation, e.g., updated GPS coordinates, to server 230 or,alternatively or additionally, the user of mobile device 210 may beprompted to indicate which one of predefined locations 265(1)-265(N) atwhich mobile device 210 is at least approximately located, it notwithin, at that time. Accordingly, server 230 may receive a message frommobile device 210 to indicate the current location of mobile device 210.Alternatively or additionally, server 230 may transmit a signal towireless detection system to cause one or more wireless communicationdevices 280(1)-280(M) to detect and determine an updated location ofmobile device 210. The purpose for doing so is to attempt to pinpointthe current location of mobile device 210 as to which one of thepredefined locations 265(1)-265(N) at which the mobile device 210 islocated at the current time.

In some implementations, one or more wireless communication devices280(1)-280(M) of the wireless detection system may track a movement ofmobile device 210 within the perimeter of premises 260. One or morewireless communication devices 280(1)-280(M) of the wireless detectionsystem may also determine non-movement of mobile device 210 at leastapproximately at one of the predefined locations 265(1)-265(N) for atleast a threshold period of time, e.g., 30 seconds, 1 minute or 3minutes. One or more wireless communication devices 280(1)-280(M) of thewireless detection system may further transmit a result of the trackingand/or determining to server 230.

In some implementations, server 230 may trigger a timer, e.g., at server230, mobile device 210 or at least one computing device of the one ormore computing devices associated with store 270, to count down for apredetermined period of time, e.g., 5 minutes or another amount of timethat is more or less than 5 minutes, upon determining that mobile device210 is at least approximately at one of the predefined locations265(1)-265(N) within the perimeter of premises 260. In someimplementations, in triggering the timer, server 230 may transmit asignal to mobile device 210 to trigger a timer on mobile device 210. Thecountdown of time may indicate to user 205 or staff of store 270 theremaining amount of time within which the one or more items of theonline order will be or should be delivered to user 205 at theparticular location, e.g., one of predefined locations 265(1)-265(N).

In some implementations, one or more wireless communication devices280(1)-280(M) of the wireless detection system may detect a presence ofanother mobile device, e.g., mobile device 240, within the perimeter ofpremises 260, and the wireless detection system may send a message toserver 230 to indicate the detection of mobile device 240. Subsequently,server 230 may search database 250 to determine whether mobile device240 is associated with any existing account. Responsive to determiningthat there is an existing account, herein referred to as “secondaccount”, server 230 may further search database 250 to determinewhether there is any pending task associated with the second account.Server 230 may transmit a third message to the one or more computingdevices associated with store 270 to indicate that there is no pendingtask associated with the second account.

In some implementations, server 230 may search database 250 to identifyone or more other existing accounts and determine whether the one ormore other existing accounts are associated with mobile device 210 (oruser 205). Upon determining that the one or more other existing accountsare associated with mobile device 210 (or user 205), server 230 maystore in database 250 an indication that the one or more other existingaccounts are associated to mobile device 210 (or user 205). In someimplementations, each of the one or more other existing accounts mayshare at least one common attribute with the first account, e.g., name,address, credit card number and/or phone number. For instance, the firstaccount and the one or more other existing accounts may belong tomembers of the same family or household, and thus may share the sameaddress, last name and/or phone number.

In some implementations, server 230 may search database 250 to identifyone or more other mobile devices, including mobile device 240. Server230 may store in database 250 an indication that the one or more othermobile devices are associated to the first account. For instance, mobiledevice 210 may be operated by or otherwise associated with user 205, whois the head of his household, and mobile device 240 may be operated byor otherwise associated with the wife of user 205. In someimplementations, each of the one or more other mobile devices may shareat least one common attribute with the first mobile device. Followingthe previous example, mobile device 240 and mobile device 210 may beregistered under the same owner, e.g., user 205, or registered under orotherwise associated with users having the same address.

In some implementations, the pending task may include fulfillment of anorder placed by user 205 who is associated with the first account. Thefirst message, sent by server 230, may trigger the one or more computingdevices associated with store 270 to perform operations in connectionwith the fulfillment of the order. For instance, upon receiving thefirst message, at least one computing device associated with store 270may signal the staff of store 270 to start preparation for fulfillmentof the order, e.g., by a message displayed on screen, an audible signalplayed by the computing device, or a message sent to pager(s) worn bythe staff.

Advantageously, according to embodiments of the present disclosure,staff at store 270 may be automatically informed of the arrival of acustomer, e.g., user 205, upon determination of the presence of thecustomer within premises 260, e.g., by using geo-fencing. The customerdoes not need to initiate a mobile app other than to leave on or turn onthe location service(s) on mobile device 210. Moreover, staff of store270 may also be automatically informed of the parking spot in which thecustomer is parked, e.g., by using beacon technology. The customer doesnot need to initiate the mobile app other than to leave on or turn onthe location service(s) on mobile device 210.

Thus, by implementing embodiments of the present disclosure in examplescenario 200, staff at store 270 may be notified that a specificcustomer, e.g., user 205, has arrived inside premises 260 which isassociated with store 270, so that the staff may begin to assemble theorder before the customer parks (assuming the customer drove here). Oneor more databases associated with merchant 202, including database 250,may be cross referenced to confirm that the customer has an existing,yet-to-be-fulfilled order before notification to staff of store 270 issent. According to the present disclosure, multiple accounts may beassociated to a single mobile device, and multiple devices, e.g., mobiledevice 210 and mobile device 240, may be associated to a single account,e.g., that of user 205. Staff of store 270 may be notified what parkingspot the customer chose or is parked in. The countdown may start as soonas the parking spot of the customer is determined, which may be notifiedby the customer or determined by the wireless detection system. Staff ofstore 270 may also be notified of the parking spot/location of acustomer who does not have an active order pending.

FIG. 3 is a block diagram depicting an embodiment of a computingapparatus 300 in accordance with the present disclosure. Computingapparatus 300 may perform various functions related to embodiments ofthe present disclosure. In some embodiments, computing apparatus 300 maybe implemented in or as server 130 in example computing environment 100and/or server 230 in example scenario 200. In some embodiments,computing apparatus 300 may be implemented as one or more computingdevices that cooperatively implement the functions described herein.Computing apparatus 300 may include a communication device 302, one ormore processors (shown as a processing device 304 in FIG. 3), and amemory device 306. Communication module 302 may allow computingapparatus 300 to communicate with other networks, systems, serversand/or computing devices. Processing device 304 may execute one or moresets of instructions to implement the functionality provided bycomputing apparatus 300. Memory device 306 may store the one or moresets of instructions executable by processing device 304 as well asother data used by processing device 304.

Computing apparatus 300 may also include a geolocation module 308, anorder handling module 310, and a countdown module 312. Each ofgeolocation module 308, order handling module 310, and countdown module312 may perform one or more functions under the control of processingdevice 304. Although geolocation module 308, order handling module 310and countdown module 312 are depicted in FIG. 3 as discrete modulesseparate from the processing device 304, in various implementations oneor more of geolocation module 308, order handling module 310 andcountdown module 312 may be an integral part of processing device 304.For simplicity, a task or function performed by any of geolocationmodule 308, order handling module 310 and countdown module 312 may bedescribed as if such task or function is performed by processing device304.

Geolocation module 308 may be configured to receive geographic orlocational information about mobile device 110 or 210, e.g., from thewireless detection system via network 120 or 220. The receivedgeographic or locational information may be used by processing device304 in determining the location of mobile device 110 or 210.

Order handling module 310 may be configured to receive information fromconsumers, e.g., including user 105 and user 205, who place onlineorders for one or more items, e.g., products and/or services offered forsale by merchant 202. Order handling module 310 may store such onlineorder(s) in a database, e.g., database 150 or 250.

Countdown module 312 may be configured to trigger a timer to countdownfor a predefined amount of time. The timer may be within countdownmodule 312, processing device 304 or a remote device, e.g., mobiledevice 110, mobile device 210 and/or the one or more computing devicesassociated with store 270.

Processing device 304 may be configured to search a database, e.g.,database 150 or 250, to determine whether a first mobile device, e.g.,mobile device 110 or 210, is associated with any existing account, e.g.,that of user 105 or 205. Processing device 304 may, responsive todetermining that the first mobile device is associated with an existingfirst account, search the database to determine whether there is anypending task associated with the first account. Processing device 304may, responsive to determining that there is a pending task associatedwith the first account, transmit a first message to one or morecomputing devices, e.g., computing device(s) associated with store 270,to indicate the detecting of the presence of the first mobile deviceassociated with the first account. Processing device 304 may alsodetermine that the first mobile device is at approximately a firstlocation of a plurality of pre-defined locations within the perimeter.Processing device 304 may further transmit information associated withthe first location to the one or more computing devices.

In some implementations, in determining that the first mobile device isat approximately the first location of the plurality of pre-definedlocations within the perimeter, processing device 304 may be configuredto receive a second message from the first mobile device indicating thatthe first mobile device is at approximately the first location.

In some implementations, processing device 304 may be further configuredto transmit a signal to the first mobile device to trigger a timer onthe first mobile device to count down for a predetermined period of timeupon determining that the first mobile device is at approximately thefirst location of the plurality of pre-defined locations within theperimeter.

In some implementations, processing device 304 may be further configuredto perform operations comprising: receiving a signal from the a wirelessdetection system indicative of detection of a presence of a secondmobile device within the perimeter of the geographic region; searchingthe database to determine that the second mobile device is associatedwith a second account; searching the database to determine that there isno pending task associated with the second account; and transmitting athird message to the one or more computing devices to indicate thatthere is no pending task associated with the second account.

In some implementations, processing device 304 may be further configuredto perform operations comprising: searching the database to identify oneor more other existing accounts or one or more other mobile devices; andstoring in the database an indication that the one or more otherexisting accounts are associated to the first mobile device or anindication that the one or more other mobile devices are associated tothe first account.

In some implementations, processing device 304 may be further configuredto dynamically define the perimeter of the geographic region on aperiodic basis or in response to receiving an operator input such that asize of an area of the geographic region within the perimeter at a firsttime is different from a size of an area of the geographic region withinthe perimeter at a second time.

FIG. 4 illustrates an example process 400 for detection of presence ofone or more mobile devices in a geographic region in accordance with thepresent disclosure. Example process 400 may include one or moreoperations, actions, or functions such as 410, 420, 430, 440, 450 and460. Although illustrated as discrete blocks, various blocks may bedivided into additional blocks, combined into fewer blocks, oreliminated, depending on the desired implementation. Example process 400may be implemented by the system shown in example computing environment100 and/or the system shown in example scenario 200.

At 410, example process 400 may involve a wireless detection system(e.g., wireless communication devices 180(1)-180(N) or 280(1)-280(N))detecting a presence of a first mobile device (e.g., mobile device 110)within a perimeter of a geographic region (e.g., geographic region 160).

At 420, example process 400 may involve a processing device (e.g.,processing device 304 of computing apparatus 300 implemented as server130 or 230), which is communicatively coupled to the wireless detectionsystem, searching a database (e.g., database 150 or 250) to determinewhether the first mobile device is associated with any existing account.

At 430, responsive to determining that the first mobile device isassociated with an existing first account, example process 400 mayinvolve the processing device searching the database to determinewhether there is any pending task associated with the first account.

At 440, responsive to determining that there is a pending taskassociated with the first account, example process 400 may involve theprocessing device transmitting a first message to one or more computingdevices to indicate the detecting of the presence of the first mobiledevice associated with the first account. In example scenario 200 forexample, processing device 304 of computing apparatus 300, implementedas server 230, may transmit the first message to one or more computingdevices associated with store 270 to notify the detection of thepresence of mobile device 210 of user 205, to whom the first account maybe associated. These one or more computing devices may be, for example,mobile devices (e.g., pagers, tablets, personal digital assistants,smartphones, laptop computers, notebook computers), desktop computersand/or servers. This would make staff at store 270 aware of the arrivalof user 205 at premises 260 for pickup so that the staff could startgathering the one or more items for delivery to user 205.

At 450, example process 400 may also involve the processing devicedetermining that the first mobile device is at least approximately at afirst location of a plurality of predefined locations within theperimeter.

At 460, example process 400 may further involve the processing devicetransmitting information associated with the first location to the oneor more computing devices.

In some implementations, the operation of determining that the firstmobile device is at least approximately at the first location of theplurality of predefined locations within the perimeter may involve theprocessing device receiving a second message from the first mobiledevice indicating that the first mobile device is at least approximatelyat the first location.

In some implementations, the operation of determining that the firstmobile device is at least approximately at the first location of theplurality of predefined locations within the perimeter may involve thewireless detection system performing operations including: tracking amovement of the first mobile device within the perimeter; determining,by the wireless detection system, non-movement of the first mobiledevice at least approximately at the first location for at least athreshold period of time; and transmitting, by the wireless detectionsystem, a result of at least one of the tracking or the determining tothe processing device.

In some implementations, example process 400 may also involve theprocessing device triggering a timer to count down for a predeterminedperiod of time upon determining that the first mobile device is at leastapproximately at the first location of the plurality of predefinedlocations within the perimeter.

In some implementations, the operation of triggering the timer mayinvolve transmitting a signal to the first mobile device to trigger atimer on the first mobile device.

In some implementations, example process 400 may involve the wirelessdetection system detecting a presence of a second mobile device withinthe perimeter of the geographic region. Example process 400 may alsoinvolve the processing device searching the database to determine thatthe second mobile device is associated with a second account. Exampleprocess 400 may further involve the processing device searching thedatabase to determine that there is no pending task associated with thesecond account. Example process 400 may additionally involve theprocessing device transmitting a third message to the one or morecomputing devices to indicate that there is no pending task associatedwith the second account.

In some implementations, example process 400 may involve the processingdevice searching the database to identify one or more other existingaccounts. Example process 400 may also involve the processing devicestoring in the database an indication that the one or more otherexisting accounts are associated to the first mobile device.

In some implementations, each of the one or more other existing accountsmay share at least one common attribute with the first account.

In some implementations, example process 400 may involve the processingdevice searching the database to identify one or more other mobiledevices. Example process 400 may also involve the processing devicestoring in the database an indication that the one or more other mobiledevices are associated to the first account.

In some implementations, each of the one or more other mobile devicesmay share at least one common attribute with the first mobile device.

In some implementations, example process 400 may involve the processingdevice dynamically defining the perimeter of the geographic region on aperiodic basis or in response to receiving an operator input such that asize of the geographic region within the perimeter at a first time isdifferent from a size of the geographic region within the perimeter at asecond time.

In some implementations, the operation of detecting the presence of thefirst mobile device within the perimeter of the geographic region mayinclude detecting the presence of the first mobile device using globalpositioning system (GPS) information received from the first mobiledevice, a radio frequency identification (RFID) signal received from thefirst mobile device, or a combination thereof.

In some implementations, the pending task may include fulfillment of anorder placed by a user associated with the first account. The one ormore computing devices may be associated with a facility near or withinthe perimeter. The first message may trigger the one or more computingdevices to perform operations in connection with the fulfillment of theorder.

FIG. 5 illustrates another example process 500 for detection of presenceof one or more mobile devices in a geographic region in accordance withthe present disclosure. Example process 500 may include one or moreoperations, actions, or functions such as 510, 520, 530, 540 and 550.Although illustrated as discrete blocks, various blocks may be dividedinto additional blocks, combined into fewer blocks, or eliminated,depending on the desired implementation. Example process 500 may beimplemented by one or more processors including, for example, one ormore processors of server 130 and/or server 200 or processing device304. For illustrative purposes, the operations described below areperformed by processing device 304 of computing apparatus 300.

At 510, example process 500 may involve processing device 304 searchingthe database to determine whether the first mobile device is associatedwith any existing account.

At 520, responsive to determining that the first mobile device isassociated with an existing first account, example process 500 mayinvolve processing device 304 searching the database to determinewhether there is any pending task associated with the first account.

At 530, responsive to determining that there is a pending taskassociated with the first account, example process 500 may involveprocessing device 304 transmitting a first message to one or morecomputing devices to indicate the detecting of the presence of the firstmobile device associated with the first account.

At 540, example process 500 may involve processing device 304determining that the first mobile device is at least approximately at afirst location of a plurality of predefined locations within theperimeter.

At 550, example process 500 may involve processing device 304transmitting information associated with the first location to the oneor more computing devices.

In some implementations, in determining that the first mobile device isat least approximately at the first location of the plurality ofpredefined locations within the perimeter, example process 500 mayinvolve processing device 304 receiving a second message from the firstmobile device indicating that the first mobile device is at leastapproximately at the first location.

In some implementations, the wireless detection system may be configuredto perform operations including: tracking a movement of the first mobiledevice within the perimeter; determining non-movement of the firstmobile device at least approximately at the first location for at leasta threshold period of time; and transmitting a result of at least one ofthe tracking or the determining to the processing device.

In some implementations, example process 500 may involve processingdevice 304 transmitting a signal to the first mobile device to trigger atimer on the first mobile device to count down for a predeterminedperiod of time upon determining that the first mobile device is at leastapproximately at the first location of the plurality of predefinedlocations within the perimeter.

In some implementations, example process 500 may involve processingdevice 304 performing operations including: receiving a signal from thea wireless detection system indicative of detection of a presence of asecond mobile device within the perimeter of the geographic region;searching the database to determine that the second mobile device isassociated with a second account; searching the database to determinethat there is no pending task associated with the second account; andtransmitting a third message to the one or more computing devices toindicate that there is no pending task associated with the secondaccount.

In some implementations, example process 500 may involve processingdevice 304 performing operations including: searching the database toidentify one or more other existing accounts or one or more other mobiledevices; and storing in the database an indication that the one or moreother existing accounts are associated to the first mobile device or anindication that the one or more other mobile devices are associated tothe first account.

In some implementations, example process 500 may involve processingdevice 304 dynamically defining the perimeter of the geographic regionon a periodic basis or in response to receiving an operator input suchthat a size of the geographic region within the perimeter at a firsttime is different from a size of the geographic region within theperimeter at a second time.

Although the present disclosure is described in terms of certainembodiments, other embodiments will be apparent to those of ordinaryskill in the art, given the benefit of this disclosure, includingembodiments that do not provide all of the benefits and features setforth herein, which are also within the scope of this disclosure. It isto be understood that other embodiments may be utilized, withoutdeparting from the scope of the present disclosure.

The invention claimed is:
 1. A method, comprising: providing a pluralityof wireless detection devices arranged to form a wireless detectionsystem around a geographic region where a retail store is located byforming a virtual perimeter around the geographic region where theretail store is located; detecting, by the wireless detection devices ofthe wireless detection system, a presence of a first mobile device of acustomer of the retail store within the virtual perimeter of thegeographic region where the retail store is located; providing anelectronic database, the electronic database storing data representingall existing accounts of customers of the retail store and including anidentification of one or more mobile devices associated with one or moreof the existing accounts of the customers, the electronic databasefurther storing data representing all pending tasks associated withorders placed by the customers of the existing accounts; searching, by aprocessing device communicatively coupled to the wireless detectionsystem, the data stored in the electronic database to determine whetherthe first mobile device detected by the wireless detection system isstored in the electronic database in association with any existingaccount; responsive to determining, by the processing device, that thefirst mobile device is associated with an existing first account, theprocessing device searching the electronic database to determine whetherthere is data stored in the electronic database indicative of anypending task associated with the first account; responsive todetermining, by the processing device, based on a search of the datastored in the electronic database, that there is a pending taskassociated with the first account, the processing device transmitting afirst message to one or more computing devices of staff at the retailerstore, the first message notifying the staff at the retail store of thedetecting of the presence of the first mobile device associated with thefirst account within the virtual perimeter of the geographic regionwhere the retail store is located and signaling the staff at the retailstore to start preparation for fulfillment of the order; determining, bythe processing device, that the first mobile device is at leastapproximately at a first location of a plurality of predefined locationswithin the virtual perimeter of the geographic region where the retailstore is located; and transmitting, by the processing device,information associated with the first location to the one or morecomputing devices.
 2. The method of claim 1, where the determining thatthe first mobile device of the customer of the retail store is at leastapproximately at the first location of the plurality of predefinedlocations within the virtual perimeter comprises receiving, by theprocessing device, a second message from the first mobile device of thecustomer of the retail store indicating that the first mobile device ofthe customer of the retail store is at least approximately at the firstlocation.
 3. The method of claim 1, where the determining that the firstmobile device of the customer of the retail store is at leastapproximately at the first location of the plurality of predefinedlocations within the virtual perimeter comprises: tracking, by thewireless detection system, a movement of the first mobile device of thecustomer of the retail store within the virtual perimeter; determining,by the wireless detection system, non-movement of the first mobiledevice of the customer of the retail store at least approximately at thefirst location for at least a threshold period of time; andtransmitting, by the wireless detection system, a result of at least oneof the tracking or the determining to the processing device.
 4. Themethod of claim 1, further comprising: triggering, by the processingdevice, a timer to count down for a predetermined period of time upondetermining that the first mobile device of the customer of the retailstore is at least approximately at the first location of the pluralityof predefined locations within the virtual perimeter.
 5. The method ofclaim 4, wherein the triggering the timer comprises transmitting asignal to the first mobile device of the customer of the retail store totrigger a timer on the first mobile device of the customer of the retailstore.
 6. The method of claim 1, further comprising: detecting, by thewireless detection system, a presence of a second mobile device of asecond customer of the retail store within the virtual perimeter of thegeographic region where the retail store is located; searching, by theprocessing device, the electronic database to determine that the secondmobile device of the second customer of the retail store is associatedwith a second account; searching, by the processing device, theelectronic database to determine that there is no pending taskassociated with the second account; and transmitting, by the processingdevice, a third message to the one or more computing devices to indicatethat there is no pending task associated with the second account.
 7. Themethod of claim 1, further comprising: searching, by the processingdevice, the electronic database to identify one or more other existingaccounts; and storing, by the processing device, in the electronicdatabase an indication that the one or more other existing accounts areassociated to the first mobile device of the customer of the retailstore.
 8. The method of claim 7, wherein each of the one or more otherexisting accounts shares at least one common attribute with the firstaccount.
 9. The method of claim 1, further comprising: searching, by theprocessing device, the electronic database to identify one or more othermobile devices of other customers of the retail store; and storing, bythe processing device, in the electronic database an indication that theone or more other mobile devices are associated to the first account.10. The method of claim 9, wherein each of the one or more other mobiledevices of the other customers of the retail store shares at least onecommon attribute with the first mobile device of the customer of theretail store.
 11. The method of claim 1, further comprising: dynamicallydefining, by the processing device, the virtual perimeter of thegeographic region where the retail store is located on a periodic basisor in response to receiving an operator input such that a size of thegeographic region within the virtual perimeter at a first time isdifferent from a size of the geographic region within the virtualperimeter at a second time.
 12. The method of claim 1, wherein thedetecting the presence of the first mobile device within the virtualperimeter of the geographic region where the retail store is locatedcomprises detecting the presence of the first mobile device using globalpositioning system (GPS) information received from the first mobiledevice, a radio frequency identification (RFID) signal received from thefirst mobile device, or a combination thereof.
 13. A system, comprising:a plurality of wireless detection devices arranged to form a wirelessdetection system around a geographic region where a retail store islocated by forming a virtual perimeter around the geographic regionwhere the retail store is located, the wireless detection systemconfigured to wirelessly detect a presence of a first mobile device of acustomer of the retail store within the virtual perimeter of thegeographic region where the retail store is located; an electronicdatabase configured to store data representing all existing accounts ofcustomers of the retail store and including an identification of one ormore mobile devices associated with one or more of the existing accountsof the customers, the electronic database further storing datarepresenting all pending tasks associated with orders placed by thecustomers of the existing accounts; and a processing devicecommunicatively coupled to the wireless detection system and thedatabase, the processing device configured to perform operationscomprising: searching the data stored in the electronic database todetermine whether the first mobile device detected by the wirelessdetection system is stored in the electronic database in associationwith any existing account; responsive to determining by the processingdevice that the first mobile device is associated with an existing firstaccount, searching the electronic database to determine whether there isany data stored in the electronic database indicative of pending taskassociated with the first account; responsive to determining, by theprocessing device, based on a search of the data stored in theelectronic database, that there is a pending task associated with thefirst account, the processing device transmitting a first message to oneor more computing devices of staff at the retailer store, the firstmessage notifying the staff at the retail store of the detecting of thepresence of the first mobile device associated with the first accountwithin the virtual perimeter of the geographic region where the retailstore is located and signaling the staff at the retail store to startpreparation for fulfillment of the order; determining that the firstmobile device is at least approximately at a first location of aplurality of predefined locations within the virtual perimeter; andtransmitting information associated with the first location to the oneor more computing devices.
 14. The system of claim 13, where, indetermining that the first mobile device of the customer of the retailstore is at least approximately at the first location of the pluralityof predefined locations within the virtual perimeter, the processingdevice is configured to receive a second message from the first mobiledevice of the customer of the retail store indicating that the firstmobile device of the customer of the retail store is at leastapproximately at the first location.
 15. The system of claim 13, wherethe wireless detection system is configured to perform operationscomprising: tracking a movement of the first mobile device of thecustomer of the retail store within the virtual perimeter; determiningnon-movement of the first mobile device of the customer of the retailstore at least approximately at the first location for at least athreshold period of time; and transmitting a result of the determiningto the processing device.
 16. The system of claim 13, wherein theprocessing device is further configured to perform operationscomprising: transmitting a signal to the first mobile device of thecustomer of the retail store to trigger a timer on the first mobiledevice of the customer of the retail store to count down for apredetermined period of time upon determining that the first mobiledevice of the customer of the retail store is at least approximately atthe first location of the plurality of predefined locations within thevirtual perimeter.
 17. The system of claim 13, wherein the processingdevice is further configured to perform operations comprising: receivinga signal from the wireless detection system indicative of detection of apresence of a second mobile device of a second customer of the retailstore within the virtual perimeter of the geographic region; searchingthe electronic database to determine that the second mobile device ofthe second customer of the retail store is associated with a secondaccount; searching the electronic database to determine that there is nopending task associated with the second account; and transmitting athird message to the one or more computing devices to indicate thatthere is no pending task associated with the second account.
 18. Thesystem of claim 13, wherein the processing device is further configuredto perform operations comprising: searching the electronic database toidentify one or more other existing accounts or one or more other mobiledevices of other customers of the retail store; and storing in theelectronic database an indication that the one or more other existingaccounts are associated to the first mobile device of the customer ofthe retail store or an indication that the one or more other mobiledevices of the other customers of the retail store are associated to thefirst account.
 19. The system of claim 13, wherein the processing deviceis further configured to perform operations comprising: dynamicallydefining the virtual perimeter of the geographic region where the retailstore is located on a periodic basis or in response to receiving anoperator input such that a size of the geographic region within thevirtual perimeter at a first time is different from a size of thegeographic region within the virtual perimeter at a second time.